// noinspection JSUnresolvedReference /** * Field Google Map */ /* global jQuery, document, redux_change, redux, google */ (function ( $ ) { 'use strict'; redux.field_objects = redux.field_objects || {}; redux.field_objects.google_maps = redux.field_objects.google_maps || {}; /* LIBRARY INIT */ redux.field_objects.google_maps.init = function ( selector ) { if ( ! selector ) { selector = $( document ).find( '.redux-group-tab:visible' ).find( '.redux-container-google_maps:visible' ); } $( selector ).each( function ( i ) { let delayRender; const el = $( this ); let parent = el; if ( ! el.hasClass( 'redux-field-container' ) ) { parent = el.parents( '.redux-field-container:first' ); } if ( parent.is( ':hidden' ) ) { return; } if ( parent.hasClass( 'redux-field-init' ) ) { parent.removeClass( 'redux-field-init' ); } else { return; } // Check for delay render, which is useful for calling a map // render after JavaScript load. delayRender = Boolean( el.find( '.redux_framework_google_maps' ).data( 'delay-render' ) ); // API Key button. redux.field_objects.google_maps.clickHandler( el ); // Init our maps. redux.field_objects.google_maps.initMap( el, i, delayRender ); } ); }; /* INIT MAP FUNCTION */ redux.field_objects.google_maps.initMap = async function ( el, idx, delayRender ) { let delayed; let scrollWheel; let streetView; let mapType; let address; let defLat; let defLong; let defaultZoom; let mapOptions; let geocoder; let g_autoComplete; let g_LatLng; let g_map; let noLatLng = false; // Pull the map class. const mapClass = el.find( '.redux_framework_google_maps' ); const containerID = mapClass.attr( 'id' ); const autocomplete = containerID + '_autocomplete'; const canvas = containerID + '_map_canvas'; const canvasId = $( '#' + canvas ); const latitude = containerID + '_latitude'; const longitude = containerID + '_longitude'; // Add map index to data attr. // Why, say we want to use delay_render, // and want to init the map later on. // You'd need the index number in the // event of multiple map instances. // This allows one to retrieve it // later. $( mapClass ).attr( 'data-idx', idx ); if ( true === delayRender ) { return; } // Map has been rendered, no need to process again. if ( $( '#' + containerID ).hasClass( 'rendered' ) ) { return; } // If a map is set to delay render and has been initiated // from another scrip, add the 'render' class so rendering // does not occur. // It messes things up. delayed = Boolean( mapClass.data( 'delay-render' ) ); if ( true === delayed ) { mapClass.addClass( 'rendered' ); } // Create the autocomplete object, restricting the search // to geographical location types. g_autoComplete = await google.maps.importLibrary( 'places' ); g_autoComplete = new google.maps.places.Autocomplete( document.getElementById( autocomplete ), {types: ['geocode']} ); // Data bindings. scrollWheel = Boolean( mapClass.data( 'scroll-wheel' ) ); streetView = Boolean( mapClass.data( 'street-view' ) ); mapType = Boolean( mapClass.data( 'map-type' ) ); address = mapClass.data( 'address' ); address = decodeURIComponent( address ); address = address.trim(); // Set default Lat/lng. defLat = canvasId.data( 'default-lat' ); defLong = canvasId.data( 'default-long' ); defaultZoom = canvasId.data( 'default-zoom' ); // Eval whether to set maps based on lat/lng or address. if ( '' !== address ) { if ( '' === defLat || '' === defLong ) { noLatLng = true; } } else { noLatLng = false; } // Can't have empty values, or the map API will complain. // Set default for the middle of the United States. defLat = defLat ? defLat : 39.11676722061108; defLong = defLong ? defLong : -100.47761000000003; if ( noLatLng ) { // If displaying a map based on an address. geocoder = new google.maps.Geocoder(); // Set up Geocode and pass address. geocoder.geocode( {'address': address}, function ( results, status ) { let latitude; let longitude; // Function results. if ( status === google.maps.GeocoderStatus.OK ) { // A good address was passed. g_LatLng = results[0].geometry.location; // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); // Get and set lat/long data. latitude = el.find( '#' + containerID + '_latitude' ); latitude.val( results[0].geometry.location.lat() ); longitude = el.find( '#' + containerID + '_longitude' ); longitude.val( results[0].geometry.location.lng() ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } else { // No data found, alert the user. alert( 'Geocode was not successful for the following reason: ' + status ); } } ); } else { // If displaying map based on an lat/lng. g_LatLng = new google.maps.LatLng( defLat, defLong ); // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, // Start off far unless an item is selected, set by php. streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create the map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } }; redux.field_objects.google_maps.renderControls = function ( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ) { let markerTooltip; let infoWindow; let g_marker; let geoAlert = mapClass.data( 'geo-alert' ); // Get HTML. const input = document.getElementById( autocomplete ); // Set objects into the map. g_map.controls[google.maps.ControlPosition.TOP_LEFT].push( input ); // Bind objects to the map. g_autoComplete = new google.maps.places.Autocomplete( input ); g_autoComplete.bindTo( 'bounds', g_map ); // Get the marker tooltip data. markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Create infoWindow. infoWindow = new google.maps.InfoWindow(); // Create marker. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), draggable: true, title: markerTooltip, animation: google.maps.Animation.DROP } ); geoAlert = decodeURIComponent( geoAlert ); // Place change. google.maps.event.addListener( g_autoComplete, 'place_changed', function () { let place; let address; let markerTooltip; infoWindow.close(); // Get place data. place = g_autoComplete.getPlace(); // Display alert if something went wrong. if ( ! place.geometry ) { window.alert( geoAlert ); return; } console.log( place.geometry.viewport ); // If the place has a geometry, then present it on a map. if ( place.geometry.viewport ) { g_map.fitBounds( place.geometry.viewport ); } else { g_map.setCenter( place.geometry.location ); g_map.setZoom( 17 ); // Why 17? Because it looks good. } markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Set the marker icon. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), title: markerTooltip, clickable: true, draggable: true, animation: google.maps.Animation.DROP } ); // Set marker position and display. g_marker.setPosition( place.geometry.location ); g_marker.setVisible( true ); // Form array of address components. address = ''; if ( place.address_components ) { address = [( place.address_components[0] && place.address_components[0].short_name || '' ), ( place.address_components[1] && place.address_components[1].short_name || '' ), ( place.address_components[2] && place.address_components[2].short_name || '' )].join( ' ' ); } // Set the default marker info window with address data. infoWindow.setContent( '
' + place.name + '
' + address ); infoWindow.open( g_map, g_marker ); // Run Geolocation. redux.field_objects.google_maps.geoLocate( g_autoComplete ); // Fill in address inputs. redux.field_objects.google_maps.fillInAddress( el, latitude, longitude, g_autoComplete ); } ); // Marker drag. google.maps.event.addListener( g_marker, 'drag', function ( event ) { document.getElementById( latitude ).value = event.latLng.lat(); document.getElementById( longitude ).value = event.latLng.lng(); } ); // End marker drag. google.maps.event.addListener( g_marker, 'dragend', function () { redux_change( el.find( '.redux_framework_google_maps' ) ); } ); // Zoom Changed. g_map.addListener( 'zoom_changed', function () { el.find( '.google_m_zoom_input' ).val( g_map.getZoom() ); } ); // Marker Info Window. infoWindow = new google.maps.InfoWindow(); google.maps.event.addListener( g_marker, 'click', function () { const marker_info = containerID + '_marker_info'; const infoValue = document.getElementById( marker_info ).value; if ( '' !== infoValue ) { infoWindow.setContent( infoValue ); infoWindow.open( g_map, g_marker ); } } ); }; /* FILL IN ADDRESS FUNCTION */ redux.field_objects.google_maps.fillInAddress = function ( el, latitude, longitude, g_autoComplete ) { // Set variables. const containerID = el.find( '.redux_framework_google_maps' ).attr( 'id' ); // What if someone only wants city, or state, ect... // gotta do it this way to check for the address! // Need to check each of the returned components to see what is returned. const componentForm = { street_number: 'short_name', route: 'long_name', locality: 'long_name', administrative_area_level_1: 'short_name', country: 'long_name', postal_code: 'short_name' }; // Get the place details from the autocomplete object. const place = g_autoComplete.getPlace(); let component; let i; let addressType; let _d_addressType; let val; let len; document.getElementById( latitude ).value = place.geometry.location.lat(); document.getElementById( longitude ).value = place.geometry.location.lng(); for ( component in componentForm ) { if ( componentForm.hasOwnProperty( component ) ) { // Push in the dynamic form element ID again. component = containerID + '_' + component; // Assign to proper place. document.getElementById( component ).value = ''; document.getElementById( component ).disabled = false; } } // Get each component of the address from the place details // and fill the corresponding field on the form. len = place.address_components.length; for ( i = 0; i < len; i += 1 ) { addressType = place.address_components[i].types[0]; if ( componentForm[addressType] ) { // Push in the dynamic form element ID again. _d_addressType = containerID + '_' + addressType; // Get the original. val = place.address_components[i][componentForm[addressType]]; // Assign to proper place. document.getElementById( _d_addressType ).value = val; } } }; redux.field_objects.google_maps.geoLocate = function ( g_autoComplete ) { if ( navigator.geolocation ) { navigator.geolocation.getCurrentPosition( function ( position ) { const geolocation = new google.maps.LatLng( position.coords.latitude, position.coords.longitude ); const circle = new google.maps.Circle( { center: geolocation, radius: position.coords.accuracy } ); g_autoComplete.setBounds( circle.getBounds() ); } ); } }; /* API BUTTON CLICK HANDLER */ redux.field_objects.google_maps.clickHandler = function ( el ) { // Find the API Key button and react on click. el.find( '.google_m_api_key_button' ).on( 'click', function () { // Find message wrapper. const wrapper = el.find( '.google_m_api_key_wrapper' ); if ( wrapper.is( ':visible' ) ) { // If the wrapper is visible, close it. wrapper.slideUp( 'fast', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } else { // If the wrapper is visible, open it. wrapper.slideDown( 'medium', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } } ); el.find( '.google_m_autocomplete' ).on( 'keypress', function ( e ) { if ( 13 === e.keyCode ) { e.preventDefault(); } } ); // Auto select autocomplete contents, // since Google doesn't do this inherently. el.find( '.google_m_autocomplete' ).on( 'click', function ( e ) { $( this ).trigger( 'focus' ); $( this ).trigger( 'select' ); e.preventDefault(); } ); }; } )( jQuery ); Découvrez la Machine à Sous 1win: Jouez au Casino en Ligne au Senegal – Orchid Group
Warning: Undefined variable $encoded_url in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Deprecated: base64_decode(): Passing null to parameter #1 ($string) of type string is deprecated in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Découvrez la Machine à Sous 1win: Jouez au Casino en Ligne au Senegal

Découvrez la Machine à Sous 1win: Jouez au Casino en Ligne au Senegal

Comprendre le Fonctionnement de la Machine à Sous 1win: Un Guide pour les Joueurs Sénégalais

Si vous êtes un joueur sénégalais intéressé par la machine à sous 1win, vous êtes au bon endroit. Tout d’abord, il est important de comprendre que les machines à sous sont un jeu de hasard. Les résultats sont déterminés par un générateur de nombres aléatoires. Deuxièmement, pour jouer, il vous suffit de sélectionner la dénomination de votre pièce et de cliquer sur le bouton “Spin”. Troisièmement, il existe différents types de machines à sous 1win, chacune avec ses propres règles et fonctionnalités. Par exemple, certaines machines à sous ont des jackpots progressifs, ce qui signifie que le montant du jackpot augmente à chaque tour. Quatrièmement, il est important de fixer un budget avant de commencer à jouer et de s’y tenir. Cinquièmement, n’oubliez pas de profiter des bonus et promotions offerts par 1win, ce qui peut augmenter vos chances de gagner. Enfin, n’oubliez pas de vous amuser et de jouer de manière responsable.

Découvrez la Machine à Sous 1win: Jouez au Casino en Ligne au Senegal

Pourquoi la Machine à Sous 1win Est Populaire Dans les Casinos en Ligne du Sénégal

Le casino en ligne 1win est devenu très populaire au Sénégal en raison de sa machine à sous offrant une expérience de jeu exceptionnelle. La raison de sa popularité est due à sa simplicité et sa facilité d’utilisation, permettant aux joueurs de tous niveaux de s’amuser. De plus, les graphismes et les effets sonores de haute qualité de la machine à sous 1win offrent une expérience de jeu immersive. En outre, les joueurs peuvent bénéficier de généreux bonus et promotions offerts par le casino en ligne 1win. La sécurité et la fiabilité sont également des facteurs clés qui contribuent à la popularité de la machine à sous 1win au Sénégal. Enfin, la compatibilité mobile de la machine à sous 1win permet aux joueurs de jouer à tout moment et n’importe où, ce qui en fait un choix idéal pour les amateurs de jeux de casino en ligne au Sénégal.

Comment Jouer à la Machine à Sous 1win Dans les Casinos en Ligne au Sénégal

Si vous cherchez à savoir comment jouer à la machine à sous 1win dans les casinos en ligne au Sénégal, vous êtes au bon endroit. Tout d’abord, il est important de trouver un casino en ligne fiable et réputé qui propose la machine à sous 1win. Ensuite, inscrivez-vous et effectuez un dépôt en utilisant une méthode de paiement sécurisée. Une fois que vous avez des fonds sur votre compte, recherchez la machine à sous 1win dans la section des jeux de casino. Avant de commencer à jouer, n’oubliez pas de régler votre mise en fonction de votre budget et de vos préférences de jeu. Enfin, appuyez sur le bouton de rotation et regardez les rouleaux tourner pour peut-être décrocher le jackpot !

Découvrez la Machine à Sous 1win: Jouez au Casino en Ligne au Senegal

Découvrez les Caractéristiques Uniques de la Machine à Sous 1win Dans les Casinos en Ligne Sénégalais

Si vous êtes à la recherche d’une expérience de machine à sous unique dans les casinos en ligne sénégalais, ne cherchez pas plus loin que la machine à sous 1win. Ce jeu offre une variété de caractéristiques uniques qui le distinguent des autres machines à sous en ligne. Tout d’abord, la machine à sous 1win propose un jackpot progressif qui peut atteindre des sommes astronomiques. En plus de cela, il y a aussi un mini-jeu de pick-em qui peut être déclenché aléatoirement pendant le jeu de base. La machine à sous 1win offre également des wilds empilés et des re-spins, ce qui augmente vos chances de gagner gros. Avec ses graphismes nets et son gameplay fluide, la machine à sous 1win est sûre de fournir des heures de divertissement. Alors, qu’attendez-vous ? Découvrez les caractéristiques uniques de la machine à sous 1win dans les casinos en ligne sénégalais dès aujourd’hui !

Avis de Moustapha, 35 ans:

J’ai récemment découvert la Machine à Sous 1win et je suis ravi de partager mon expérience positive avec vous. En tant que fan de casino en ligne, j’ai été agréablement surpris par la qualité et la variété des jeux proposés par 1win. La Machine à Sous est particulièrement divertissante et offre de nombreuses opportunités de gains.

Ce que j’apprécie le plus chez 1win, c’est leur professionnalisme et leur engagement envers la sécurité des joueurs. J’ai toujours eu l’impression que mes informations personnelles et financières étaient en sécurité, ce qui est essentiel pour une expérience de jeu agréable.

Je recommande vivement la Machine à Sous 1win à tous les https://1win-sn.fyi/ amateurs de casino en ligne au Sénégal. Vous ne serez pas déçus!

Avis de Aïssatou, 28 ans:

Si vous êtes à la recherche d’une nouvelle expérience de casino en ligne, ne cherchez pas plus loin que la Machine à Sous 1win. J’ai récemment essayé ce jeu et je suis absolument ravie. Les graphismes sont superbes, les fonctionnalités sont intuitives et les gains sont réguliers.

Ce que j’aime le plus chez 1win, c’est leur service clientèle exceptionnel. J’ai eu quelques questions lors de mon inscription et l’équipe d’assistance a été extrêmement réactive et serviable. J’ai vraiment apprécié leur professionnalisme et leur dévouement envers les joueurs.

Si vous êtes au Sénégal et que vous cherchez un casino en ligne fiable et amusant, je vous recommande vivement la Machine à Sous 1win. Vous allez adorer!

Découvrez la Machine à Sous 1win: Jouez au Casino en Ligne au Sénégal

Avez-vous déjà entendu parler de la Machine à Sous 1win ? Il s’agit d’un jeu de casino en ligne très populaire au Sénégal. Voici quelques réponses aux questions que vous pourriez vous poser :

  • Qu’est-ce que la Machine à Sous 1win ? C’est un jeu de hasard où vous devez aligner des symboles pour gagner des prix.
  • Comment jouer à la Machine à Sous 1win ? Il vous suffit de vous inscrire sur le site de casino en ligne 1win et de sélectionner le jeu.
  • Est-il sûr de jouer à la Machine à Sous 1win au Sénégal ? Oui, 1win est un casino en ligne agréé et réglementé qui utilise des mesures de sécurité avancées pour protéger vos informations personnelles et financières.
  • Puis-je gagner de l’argent réel en jouant à la Machine à Sous 1win ? Oui, vous pouvez déposer de l’argent réel sur votre compte 1win et retirer vos gains si vous avez de la chance !

Design and Develop by Ovatheme